home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume91 / utilitys / msclock1 / part01
Encoding:
Internet Message Format  |  1991-05-08  |  43.7 KB

  1. Path: news.larc.nasa.gov!amiga-request
  2. From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v91i099: MSClock 1.3 - yet another clock utility, Part01/01
  4. Reply-To: stefanb@cip-s01.informatik.rwth-aachen.de (Stefan Becker)
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga:v91i099@ab20.larc.nasa.gov>
  7. Date: 08 May 91 00:24:58 GMT
  8. Approved: tadguy@uunet.UU.NET (Tad Guy)
  9. X-Mail-Submissions-To: amiga@uunet.uu.net
  10. X-Post-Discussions-To: comp.sys.amiga.misc
  11.  
  12. Submitted-by: stefanb@cip-s01.informatik.rwth-aachen.de (Stefan Becker)
  13. Posting-number: Volume 91, Issue 099
  14. Archive-name: utilities/msclock-1.3/part01
  15.  
  16. [ includes uuencoded executable and handler  ...tad ]
  17.  
  18. Yet another clock utility, nobody has been waiting for.
  19. MSClock recognizes overscan-workbenches and displays memory, date, time and
  20. online time (if connected to another computer via modem).
  21.  
  22. #!/bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of archive 1 (of 1)."
  29. # Contents:  MSClock1_3.doc c c/MSClock.uu l l/MSClock-Han.uu source
  30. #   source/MSClock-Handler.c source/MSClock.c source/makefile
  31. # Wrapped by tadguy@ab20 on Tue May  7 20:24:57 1991
  32. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  33. if test -f 'MSClock1_3.doc' -a "${1}" != "-c" ; then 
  34.   echo shar: Will not clobber existing file \"'MSClock1_3.doc'\"
  35. else
  36. echo shar: Extracting \"'MSClock1_3.doc'\" \(949 characters\)
  37. sed "s/^X//" >'MSClock1_3.doc' <<'END_OF_FILE'
  38. XMSClock V1.3  (c) 12.02.91 by Martin Steppler
  39. X
  40. XYet another clock utility, nobody has been waiting for.
  41. XMSClock recognizes overscan-workbenches and displays memory, date, time and
  42. Xonline time (if connected to another computer via modem).
  43. XThat's all. If it's not enough for you, enhance it by yourself!
  44. XFeel free to use, copy or destroy it!
  45. X
  46. XUSAGE:  MSClock [-t] [-d] [-m] [-e] [-r] [-q] [quit] [h]
  47. X
  48. X        -t    time   off/on                default: on
  49. X        -d    date   off/on                default: on
  50. X        -m    memory off/on                default: on
  51. X        -o    online time off/on           default: on
  52. X        -e    English weekdays on/off      default: German on
  53. X        -r    reverse date display on/off  default: off
  54. X        -q    quit MSClock
  55. X         quit
  56. X         h    or any other key: help
  57. X
  58. XBye, Martin.
  59. X
  60. XInterNet: steppler@cip-s01.informatik.rwth-aachen.de
  61. XFidoNet:  Martin Steppler @ 2:242/7.12
  62. XPhone:    +47-(0)241-158579
  63. END_OF_FILE
  64. if test 949 -ne `wc -c <'MSClock1_3.doc'`; then
  65.     echo shar: \"'MSClock1_3.doc'\" unpacked with wrong size!
  66. fi
  67. # end of 'MSClock1_3.doc'
  68. fi
  69. if test ! -d 'c' ; then
  70.     echo shar: Creating directory \"'c'\"
  71.     mkdir 'c'
  72. fi
  73. if test -f 'c/MSClock.uu' -a "${1}" != "-c" ; then 
  74.   echo shar: Will not clobber existing file \"'c/MSClock.uu'\"
  75. else
  76. echo shar: Extracting \"'c/MSClock.uu'\" \(8630 characters\)
  77. sed "s/^X//" >'c/MSClock.uu' <<'END_OF_FILE'
  78. Xbegin 666 MSClock
  79. XM```#\P`````````#``````````(```7E0```'`````$```/I```%Y4[Z$&I.H
  80. XM50``2.<``'``3-\``$Y=3G5.5?_@2.<`()/)+&R`#DZN_MHD0"M\````)__\A
  81. XM0JW_]$*M__`K0O_H)#P```/M0?H($B((+&R`$DZN_^(D+?_H*T#_['``0_H'L
  82. XM_"QL@`Y.KOW8*4"`%F<`!Z9P`$/Z!_@L;(`.3J[]V"E`@!IG``>00_H'\"QLV
  83. XM@`Y.KOYZ*4"`'F<```P@;(`>*V@`/O_\*WP````!__A@```&4JW_^"`M__BPA
  84. XMK0`(;``!_DAZ!\H@+?_XY8`@;0`,+S`(`$ZZ#W103TJ`9P``($AZ![$@+?_X5
  85. XMY8`@;0`,+S`(`$ZZ#U903TJ`9@``#BM\`````?_T8``!MDAZ!XH@+?_XY8`@]
  86. XM;0`,+S`(`$ZZ#RQ03TJ`9@``*@@M``#__V<``!`@+?_\`H`````^8```"B`M%
  87. XM__P(P```*T#__&```6Q(>@='("W_^.6`(&T`#"\P"`!.N@[F4$]*@&8``"H(L
  88. XM+0`!__]G```0("W__`*`````/6````H@+?_\",```2M`__Q@``$F2'H'!"`ML
  89. XM__CE@"!M``PO,`@`3KH.H%!/2H!F```J""T``O__9P``$"`M__P"@````#M@<
  90. XM```*("W__`C```(K0/_\8```X$AZ!L$@+?_XY8`@;0`,+S`(`$ZZ#EI03TJ`-
  91. XM9@``*@@M``/__V<``!`@+?_\`H`````W8```"B`M__P(P``#*T#__&```)I(C
  92. XM>@9^("W_^.6`(&T`#"\P"`!.N@X44$]*@&8``"H(+0`$__]G```0("W__`*`"
  93. XM````+V````H@+?_\",``!"M`__Q@``!42'H&.R`M__CE@"!M``PO,`@`3KH-(
  94. XMSE!/2H!F```J""T`!?__9P``$"`M__P"@````!]@```*("W__`C```4K0/_\$
  95. XM8```#BM\`````?_P8```!F``_?9*K?_P9P`!B$JM_^QG``&`2.T`#/_D2'H&*
  96. XM!DZZ$J!83R8`0?H%QB0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&1DZZ0
  97. XM$G983R8`0?H&!"0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&BDZZ$DQ81
  98. XM3R8`0?H&1B0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&T$ZZ$B)83R8`$
  99. XM0?H&C"0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'%DZZ$?A83R8`0?H&R
  100. XMTB0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'7$ZZ$<Y83R8`0?H'&"0(8
  101. XM(BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'J4ZZ$:183R8`0?H'7B0((BW_1
  102. XM["QL@!).KO_03.T`#/_D2.T`#/_D2'H']TZZ$7I83R8`0?H'LB0((BW_["QL_
  103. XM@!).KO_03.T`#/_D2.T`#/_D2'H((DZZ$5!83R8`0?H'^B0((BW_["QL@!).E
  104. XMKO_03.T`#/_D8``#S$JL@!YF``)V2JW_]&8``FXB/``!``%P2BQL@`Y.KO\Z[
  105. XM*4"`'F<``E(@;(`>$7P``@`.(&R`'D(H``D@;(`>$7P`!``(<@%P%"QL@`Y.4
  106. XMKO\Z(&R`'B%```H@;(`>0J@`+B!L@!XA2@`J(&R`'B%\````2@`F+RW__$ZZ3
  107. XM"K983R!L@!XA0``V3KH+&"!L@!Z0J``V(&R`'B%``#(@;(`>0J@`.B!L@!XA!
  108. XM;?_\`#X@;(`>(6W__`!"2'H'="!L@!XO*``*3KH0CE!/(&R`'M'\````%"\(J
  109. XM3KH0:EA/0?H'9"((+&R`$DZN_VH@;(`>(4``(F8``!A!^@=:(@@L;(`23J[_>
  110. XM:B!L@!XA0``B(&R`'DJH`")F``!><!0@;(`>(F@`"BQL@`Y.KO\N(&R`'B`H<
  111. XM`"8B;(`>+&R`#DZN_RY*K?_L9P``+$CM``S_Y$AZ!W!.N@_>6$\F`$'Z!QXDY
  112. XM""(M_^PL;(`23J[_T$SM``S_Y&```0@B;(`>+&R`#DZN_IY([0`<_^`H/```&
  113. XM$``@;(`>)B@`(G0%0?H';"((+&R`$DZN_W9,[0`<_^`@/```(``L;(`.3J[^F
  114. XMPB!L@!Y*J``N9@``AB)L@!XL;(`.3J[^F'`4(&R`'B)H``HL;(`.3J[_+B!LY
  115. XM@!Y*J``B9P``$B!L@!XB*``B+&R`$DZN_V0@;(`>("@`)B)L@!XL;(`.3J[_O
  116. XM+DJM_^QG```L2.T`#/_D2'H'2TZZ#PI83R8`0?H&^20((BW_["QL@!).KO_0>
  117. XM3.T`#/_D8```-$JM_^QG```L2.T`#/_D2'H'HDZZ#M183R8`0?H'3R0((BW_"
  118. XM["QL@!).KO_03.T`#/_D8``!4$JL@!YG``#D2JW_]&<``-P@;(`>(4H`*B`\A
  119. XM```@`"!L@!XB:``N+&R`#DZN_KP@/```(``L;(`.3J[^PB)L@!XL;(`.3J[^(
  120. XMF'`4(&R`'B)H``HL;(`.3J[_+B!L@!Y*J``B9P``$B!L@!XB*``B+&R`$DZN<
  121. XM_V0@;(`>("@`)B)L@!XL;(`.3J[_+DJM_^QG``!62.T`#/_D2'H'@TZZ#A18'
  122. XM3R8`0?H',20((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'QTZZ#>I83R8`K
  123. XM0?H'DR0((BW_["QL@!).KO_03.T`#/_D8```9DJL@!YG``!>(&R`'B%M__P`J
  124. XM0B\M__Q.N@>R6$\@;(`>(4``-DZZ"!0@;(`>D*@`-B!L@!XA0``R(&R`'B%*0
  125. XM`"H@/```$``@;(`>(F@`+BQL@`Y.KOZ\(#P``"``+&R`#DZN_L)*K?_L9P``[
  126. XM#B(M_^PL;(`23J[_W$JL@!9G```.(FR`%BQL@`Y.KOYB2JR`&F<```XB;(`:=
  127. XM+&R`#DZN_F),WP0`3EU.=2H`:6YT=6ET:6]N+FQI8G)A<GD`9&]S+FQI8G)A-
  128. XM<GD`36%R=&EN)W,@0VQO8VLM4&]R=`!Q=6ET`"UQ`"UT`"UD`"UM`"UE`"URL
  129. XM`"UO`!M;,6U-4T-L;V-K(%8Q+C,;6S!M(*D@,3(N,#(N.3$@8GD@36%R=&EN1
  130. XM(%-T97!P;&5R"@`;6S%M35-#;&]C:R!6,2XS&ULP;2"I(#$R+C`R+CDQ(&)YC
  131. XM($UA<G1I;B!3=&5P<&QE<@H`55-!1T4Z("!-4T-L;V-K(%LM=%T@6RUD72!;<
  132. XM+6U=(%LM95T@6RUR72!;+7%=(%MQ=6ET70H`55-!1T4Z("!-4T-L;V-K(%LM6
  133. XM=%T@6RUD72!;+6U=(%LM95T@6RUR72!;+7%=(%MQ=6ET70H`("`@("`@("`M5
  134. XM="`@("!T:6UE("`@;V9F+V]N("`@("`@("`@("`@("`@(&1E9F%U;'0Z(&]NF
  135. XM"@`@("`@("`@("UT("`@('1I;64@("!O9F8O;VX@("`@("`@("`@("`@("`@!
  136. XM9&5F875L=#H@;VX*`"`@("`@("`@+60@("`@9&%T92`@(&]F9B]O;B`@("`@<
  137. XM("`@("`@("`@("!D969A=6QT.B!O;@H`("`@("`@("`M9"`@("!D871E("`@5
  138. XM;V9F+V]N("`@("`@("`@("`@("`@(&1E9F%U;'0Z(&]N"@`@("`@("`@("UM'
  139. XM("`@(&UE;6]R>2!O9F8O;VX@("`@("`@("`@("`@("`@9&5F875L=#H@;VX*F
  140. XM`"`@("`@("`@+6T@("`@;65M;W)Y(&]F9B]O;B`@("`@("`@("`@("`@("!D^
  141. XM969A=6QT.B!O;@H`("`@("`@("`M;R`@("!O;FQI;F4@=&EM92!O9F8O;VX@Y
  142. XM("`@("`@("`@(&1E9F%U;'0Z(&]N"@`@("`@("`@("UO("`@(&]N;&EN92!T;
  143. XM:6UE(&]F9B]O;B`@("`@("`@("`@9&5F875L=#H@;VX*`"`@("`@("`@+64@:
  144. XM("`@16YG;&ES:"!W965K9&%Y<R!O;B]O9F8@("`@("!D969A=6QT.B!'97)M8
  145. XM86X@;VX*`"`@("`@("`@+64@("`@16YG;&ES:"!W965K9&%Y<R!O;B]O9F8@V
  146. XM("`@("!D969A=6QT.B!'97)M86X@;VX*`"`@("`@("`@+7(@("`@<F5V97)SV
  147. XM92!D871E(&1I<W!L87D@;VXO;V9F("!D969A=6QT.B!O9F8*`"`@("`@("`@D
  148. XM+7(@("`@<F5V97)S92!D871E(&1I<W!L87D@;VXO;V9F("!D969A=6QT.B!O$
  149. XM9F8*`"`@("`@("`@+7$@("`@<75I="!-4T-L;V-K"@`@("`@("`@("UQ("`@K
  150. XM('%U:70@35-#;&]C:PH`36%R=&EN)W,@0VQO8VLM4&]R=`!-87)T:6XG<R!#D
  151. XM;&]C:RU0;W)T`$U30VQO8VLM2&%N9&QE<@!,.DU30VQO8VLM2&%N9&QE<@!-\
  152. XM87)T:6XG<R!#;&]C:RU0;W)T`$EN<W1A;&QA=&EO;B!O9B`;6S%M36%R=&EN<
  153. XM(%-T97!P;&5R)W,@0VQO8VL;6S!M(&9A:6QE9"X@1&]N)W0@<&%N:6,A"@!)6
  154. XM;G-T86QL871I;VX@;V8@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULPX
  155. XM;2!F86EL960N($1O;B=T('!A;FEC(0H`36%R=&EN)W,@0VQO8VL`36%R=&EN.
  156. XM)W,@0VQO8VLM4&]R=`!);G-T86QL871I;VX@;V8@&ULQ;4UA<G1I;B!3=&5PZ
  157. XM<&QE<B=S($-L;V-K&ULP;2!F86EL960N($1O;B=T('!A;FEC(0H`26YS=&%L\
  158. XM;&%T:6]N(&]F(!M;,6U-87)T:6X@4W1E<'!L97(G<R!#;&]C:QM;,&T@9F%I3
  159. XM;&5D+B!$;VXG="!P86YI8R$*`$ET(&ES(&UY('!L96%S=7)E('1O(&EN<W1A7
  160. XM;&P@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULP;2!F;W(@>6]U(0H`N
  161. XM270@:7,@;7D@<&QE87-U<F4@=&\@:6YS=&%L;"`;6S%M36%R=&EN(%-T97!PE
  162. XM;&5R)W,@0VQO8VL;6S!M(&9O<B!Y;W4A"@!-87)T:6XG<R!#;&]C:RU0;W)TN
  163. XM`$ET(&ES(&UY('-A=&ES9F%C=&EO;B!T;R!C;&]S92`;6S%M36%R=&EN(%-TF
  164. XM97!P;&5R)W,@0VQO8VL;6S!M(&%G86EN"@!)="!I<R!M>2!S871I<V9A8W1IU
  165. XM;VX@=&\@8VQO<V4@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULP;2!A>
  166. XM9V%I;@H`=VET:"!T:&4@:VYO=VQE9&=E(&]F(&$@:F]B('=E;&P@9&]N92$*\
  167. XM`'=I=&@@=&AE(&MN;W=L961G92!O9B!A(&IO8B!W96QL(&1O;F4A"@``3E7_U
  168. XM_$CG``!"K?_\""T````+9P``"@:M````4/_\""T``0`+9P``"@:M````</_\4
  169. XM""T``@`+9P``"@:M````F/_\""T`!0`+9P``"@:M````4/_\2JW__&8```HKZ
  170. XM?````%#__"`M__Q,WP``3EU.=4Y5``!(YR`@<``L;(`63J[^8B0`(&R`%B1H&
  171. XM`#P@0BQL@!9.KOY<<``P*@`4`H`````/#(`````!9@``%C`J``Q(P`2`````,
  172. XM/DS?!`1.74YU)%(@"F;0(#P```)"8.I,[P,```2SR&<,<``0&+`95LC_^F8$Q
  173. XM<`!.=6,$<`%.=7#_3G5A<$/L@`Y%[(`.M<EF#C(\`!AK"'0`(L)1R?_\*4^`=
  174. XM(BQX``0I3H`.2.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z`"!.KOYHD
  175. XM*4"`$F8,+CP``X`'3J[_E&`$3KH`&E!/3G5D;W,N;&EB<F%R>0!)^0``?_Y..
  176. XM=4CG`#`F;P`0+PXB/``!```P+(`"+P%(P"(`XXC0@>.((A\L;(`.3J[_.BQ?;
  177. XM*4"`)F8>2.<!!IO-+CP``0``+&R`#DZN_Y1,WV"`+FR`(DYU(&R`)D)H``0@;
  178. XM;(`F,7P``0`0(&R`)C%\``$`"B!L@"(@+(`BD*@`!%"`*4"`*B!L@"H@O$U!5
  179. XM3E@O#I/)+&R`#DZN_MHL7R1`2JH`K&<R+PLO+P`0+PI.N@#L*7P````!@"X@J
  180. XM;(`F6(@`4(``(&R`)M'\````"@!0@`!/[P`,8%8O#D'J`%PL;(`.3J[^@"Q?*
  181. XM+PY!Z@!<+&R`#DZN_HPL7RE`@#(@;(`R2J@`)&<B+PX@;(`R(&@`)"(0+&R`D
  182. XM$DZN_X(L7R\L@#(O"DZZ`EI03REL@#*`-B\.+&R`$DZN_\HL7R!L@"8@@"\.F
  183. XM+&R`$DZN_\0L7R!L@"8A0``&2JH`I&<D2.<@`B0\```#[4'Z`#0B""QL@!).B
  184. XMKO_B3-]`!"!L@"8A0``,+RR`-B\L@#I.NNVP4$\O`$ZZ`SQ83TS?#`!.=2H`(
  185. XM2.<X,B8O`!PH+P`@)F\`)"!#2J@`K&<4($,@*`"LY8`L0"`N`!#E@"1`8`0D-
  186. XM;(`$$!)(@$C`T(14@"E`@#XO#G(`("R`/BQL@`Y.KO\Z+%\I0(!"9@9,WTP<Z
  187. XM3G40$DB`2,`D`"\"0>H``2\(+RR`0DZZ`EQ(>@%&($+1[(!"+PA.N@*@+P0O=
  188. XM"R\L@$).N@$P(&R`0D(P*``I?`````&`.B1"U>R`0E**)DI/[P`@$!)(@$C`N
  189. XM)``,@````"!G(`R"````"6<8#((````,9Q`,@@````UG"`R"````"F8$4HI@&
  190. XMS`P2`"!M=@P2`")F*E**$!I(@$C`)`!G'!;"#((````B9A`,$@`B9@12BF`&D
  191. XM0BO__V`"8-I@.!`:2(!(P"0`9RP,@@```"!G)`R"````"6<<#((````,9Q0,$
  192. XM@@````UG#`R"````"F<$%L)@RD(;2H)F`E.*4JR`.F``_U)"$R\.<@`@+(`ZH
  193. XMY8!8@"QL@`Y.KO\Z+%\I0(`V9@A"K(`Z8`#^U'0`)&R`0F`:(`+E@"!L@#8AT
  194. XMB@@`+PI.N@%BU<!2BEA/4H*TK(`Z;>`@`N6`(&R`-D*P"`!@`/Z<(`!,[P,`D
  195. XM``0@""(O``Q*&&;\4X@0V5?)__P$@0`!``!J\D(@3G5(YS@R)F\`'"@O`"`OC
  196. XM#G``0_H`Q"QL@`Y.KOW8+%\I0(!&9@9,WTP<3G4O#B!$(&@`)"!H``0L;(!&I
  197. XM3J[_LBQ?)$!*@&=X+PY#^@"9(&H`-BQL@$9.KO^@+%\L0$J`9U!(YR`")#P`Z
  198. XM``/M(B\`!"QL@!).KO_B3-]`!"8`9S(@`^6`)``@0B=H``@`I"=#`)Q(YR`":
  199. XM)#P```/M0?H`3B((+&R`$DZN_^),WT`$)T``H"\.($HL;(!&3J[_IBQ?+PXB0
  200. XM;(!&+&R`#DZN_F(L7T*L@$9@`/]0:6-O;BYL:6)R87)Y`%=)3D1/5P`J`$SOK
  201. XM`P``!"`((B\`#&`"$-E7R?_\9PP$@0`!``!J\$YU0AA1R?_\!($``0``:O).G
  202. XM=2!O``0@"$H89OQ32)'`(`A.=2!O``0@B%B00J@`!"%(``A.=4SO`P``!"`(Z
  203. XM$-EF_$YU2JR`2F<4(&R`2B!H``1.D"!L@$HI4(!*8.9*K(!.9P8@;(!.3I`O`
  204. XM+P`$3KH`!EA/3G5(YS``)B\`#$JL@"9G-'0`8`HO`DZZ`4I83U*",&R``K'"0
  205. XM;NXO#C`L@`)(P"(`XXC0@>.((FR`)BQL@`Y.KO\N+%]*K(!29P8@;(!23I!*1
  206. XMK(`(9Q`O#B(L@`@L;(`23J[_IBQ?2JR`5F<((&R`5B"L@%I*K(!>9Q`O#B)LM
  207. XM@%XL;(`.3J[^8BQ?2JR`8F<0+PXB;(!B+&R`#DZN_F(L7TJL@&9G$"\.(FR`2
  208. XM9BQL@`Y.KOYB+%]*K(!J9Q`O#B)L@&HL;(`.3J[^8BQ?2.<`!BQX``0(+@`$C
  209. XM`2EG$$OZ``A.KO_B8`9"I_-?3G,J7TJL@#)F-$JL@$)G+"\.("R`/B)L@$(L&
  210. XM;(`.3J[_+BQ?+PX@+(`ZY8!8@")L@#8L;(`.3J[_+BQ?8!PO#BQL@`Y.KO]\B
  211. XM+%\O#B)L@#(L;(`.3J[^ABQ?+PXB;(`2+&R`#DZN_F(L7R`#+FR`(DYU3-\`P
  212. XM#$YU2.<@("0O``P@`B(`XXC0@>.()$#5[(`F2H)M##!L@`*QPF\$2I)F$"E\3
  213. XM`````X!N</],WP0$3G4P*@`$`D"``&8.+PXB$BQL@!).KO_<+%]"DG``8-P`G
  214. XM`````^P````!`````0``$.`````````#\@```^H````#`!0`````````````:
  215. X0```#\@```^L````!```#\N``Y
  216. X``
  217. Xend
  218. Xsize 6136
  219. END_OF_FILE
  220. if test 8630 -ne `wc -c <'c/MSClock.uu'`; then
  221.     echo shar: \"'c/MSClock.uu'\" unpacked with wrong size!
  222. fi
  223. # end of 'c/MSClock.uu'
  224. fi
  225. if test ! -d 'l' ; then
  226.     echo shar: Creating directory \"'l'\"
  227.     mkdir 'l'
  228. fi
  229. if test -f 'l/MSClock-Han.uu' -a "${1}" != "-c" ; then 
  230.   echo shar: Will not clobber existing file \"'l/MSClock-Han.uu'\"
  231. else
  232. echo shar: Extracting \"'l/MSClock-Han.uu'\" \(12674 characters\)
  233. sed "s/^X//" >'l/MSClock-Han.uu' <<'END_OF_FILE'
  234. Xbegin 666 MSClock-Handler
  235. XM```#\P`````````#``````````(```:L0```U$```#,```/I```&K$[Z"91TK
  236. XM;W!A>BYF;VYT``!.5?]02.<(()/)+'D````\3J[^VB1`0>W_C$/Y````5'`-C
  237. XM(-E1R/_\0JW_8$*M_UQ"K?]8*WS______U1*J@"L9P``#'`*3-\$$$Y=3G5#>
  238. XM^0``"$PL>0```#Q.KOYZ(\````!`9@``!G`*8-IP`$/Y```(8"QY````/$ZN6
  239. XM_=@CP````$1F```@(#P``"``('D```!`(F@`*BQY````/$ZN_KQP%&"@<`!#9
  240. XM^0``"'(L>0```#Q.KOW8(\````!(9@``,B)Y````1"QY````/$ZN_F(@/```@
  241. XM(``@>0```$`B:``J+'D````\3J[^O'`48`#_5G``0_D```B#+'D````\3J[].
  242. XMV"/`````3&8``$(B>0```$@L>0```#Q.KOYB(GD```!$+'D````\3J[^8B`\'
  243. XM```@`"!Y````0")H`"HL>0```#Q.KOZ\<!1@`/[Z0J=(>0``"(].N0``"J10F
  244. XM3R/`````4&<``')R`$'Y````4")(<`%!^0``")HL>0```#Q.KOY$2H!F``!&C
  245. XM(_D```!0````7C/\``D```!L0CD```!N0CD```!O0KD```!P(_P`#T)`````<
  246. XM=$'Y````4")(+'D````\3J[^,F````A.N0``"1)@```(3KD```D2D\DL>0``*
  247. XM`#Q.KO[:('D```!`(4``+B!Y````0"%\`````0!&('D```!`#*@````!`$9FO
  248. XM``"4('D```!`(7P````"`$8@>0```$`SZ``T````'"!Y````0#/H`#@````@B
  249. XM0?D````<+'D```!$3J[_-"/`````3&<``#`@>0```$P@:`"`#&@`"``48P``4
  250. XM#D'Y`````"/(````$"!Y````0$*H`$9@```(3KD```D2(#P``"``('D```!`K
  251. XM(F@`*BQY````/$ZN_KP@>0```$!*J`!&9@`$*G("+'D````\3J[_*'(*XJ`K1
  252. XM0/]H<@0L>0```#Q.KO\H<@KBH"M`_V1![?^`(@@L>0```'A.KO]`("W_@`2`L
  253. XM```(RRM`_WP@+?]\Y8!6@"(\```%M4ZY```3UBM`_VP@+?]L(CP```6U3KD`Q
  254. XM``J`<@1.N0``$]:1K?]\!JT```?`_VP@+?]\(@#EB-"!5(`B/````)E.N0``(
  255. XM$]8K0/]T("W_="(\````F4ZY```*@%2`<@5.N0``$]8B+?]\DH!2@2M!_W!6J
  256. XMK?]T('D```!`*V@`/O]\#*T````,_W1O```.4JW_;`2M````#/]T0CD`````/
  257. XM""T``O]_9P``*B\M_V@O+?]D("W_:-"M_V0O`$AY```(ITAY`````$ZY```*-
  258. XM'$_O`!0(+0`%_W]G``#*<``0.0"_T``(```%9@``?B!Y````0$JH`#IF```<7
  259. XM0JW_6$*M_UQ"K?]@('D```!`(7P````!`#H@+?^(<C).N0``$]:PK?]49P``.
  260. XM/B`M_XAR,DZY```3UBM`_U12K?]8#*T````\_UAF```>0JW_6%*M_UP,K0``C
  261. XM`#S_7&8```I"K?]<4JW_8&````P@>0```$!"J``Z+RW_6"\M_UPO+?]@2'D`^
  262. XM``B\2&W_Q$ZY```*'$_O`!1(;?_$2'D`````3KD```IL4$\(+0`!_W]G``&P<
  263. XM""T``_]_9P``"'`'8```!'``*T#_>`@M``3_?V<``,(@;?]L2&CXE"\M_W`O@
  264. XM+?]T("W_;`RM`````_]T;```"'(!8```!'(`D(%R!$ZY```3UB\`("W_="(`,
  265. XMXXC0@2(?TH`@`="M_W#0K?]L#*T````"_W1O```(<@%@```$<@#2@9"!+P`@E
  266. XM+?]T4X`,K0````C_=&\```AR`6````1R`)"!<@).N0``$]8B'Y*`(`%4@'('=
  267. XM3KD``!/^T*W_>.6`0>W_C"\P"`!(>0``"-!(;?_$3KD```H<3^\`&&```+X@C
  268. XM;?]L2&CXE"\M_W0O+?]P("W_;`RM`````_]T;```"'(!8```!'(`D(%R!$ZY@
  269. XM```3UB\`("W_="(`XXC0@2(?TH`@`="M_W#0K?]L#*T````"_W1O```(<@%@V
  270. XM```$<@#2@9"!+P`@+?]T4X`,K0````C_=&\```AR`6````1R`)"!<@).N0``<
  271. XM$]8B'Y*`(`%4@'('3KD``!/^T*W_>.6`0>W_C"\P"`!(>0``".=(;?_$3KD`J
  272. XM``H<3^\`&$AM_\1(>0````!.N0``"FQ03P@M``#_?V<``%(@+?^(<C).N0``\
  273. XM$]8O`"`M_X1R/$ZY```3_B\`("W_A'(\3KD``!/6+P!(>0``"/Y(;?_$3KD``
  274. XM``H<3^\`%$AM_\1(>0````!.N0``"FQ03W(`<`!!^0````@B2"!Y````3"!H(
  275. XM`#(L>0```$1.KO\H('D```!0<``0*``/<@'AH0"!```P`"`!+'D````\3J[^`
  276. XMPB@`"`0`#6<``&).N0``"1(B>0```$0L>0```#Q.KOYB(GD```!(+'D````\.
  277. XM3J[^8B)Y````3"QY````/$ZN_F(L>0```#Q.KO]\(#P``"``('D```!`(F@`W
  278. XM*BQY````/$ZN_KQP`&``^.`(!``,9P``0DJY````3&<``!@@>0```$PL>0``"
  279. XM`$1.KO^X0KD```!,('D```!`(GD```!`(V@`0@`^('D```!`(7P````!`$8@:
  280. XM>0```%!P`!`H``]R`>&A(`3`@6<``#H@>0```%`L>0```#Q.KOZ,2H!G```D@
  281. XM0KD```!P(_P`#T)`````=$'Y````4")(+'D````\3J[^,F``^@!3;VX`36]N$
  282. XM`$1I90!-:70`1&]N`$9R90!386T`4W5N`$UO;@!4=64`5V5D`%1H=0!&<FD`;
  283. XM4V%T`$UA<G1I;B=S($-L;V-K+5!O<G0`:6YT=6ET:6]N+FQI8G)A<GD`9W)A+
  284. XM<&AI8W,N;&EB<F%R>0!D;W,N;&EB<F%R>0!4:6UE<B!0;W)T`'1I;65R+F1E!
  285. XM=FEC90!!.B4M-&0@1CHE+31D($,Z)2TS9``@("4P,FQD.B4P,FQD.B4P,FQD5
  286. XM`"`@)7,@)3`R;&0M)3`R;&0M)3`R;&0`("`E<R`E,#)L9"XE,#)L9"XE,#)L,
  287. XM9``@("4P,FQD.B4P,FQD.B4P,FQD`$Y5``!(YP``2KD```!09P``$B!Y````4
  288. XM4"QY````/$ZN_HQ*N0```%YG```40?D```!0(D@L>0```#Q.KOX^2KD```!0S
  289. XM9P``%B\Y````4$ZY```+5%A/0KD```!02KD```!,9P``&"!Y````3"QY````E
  290. XM1$ZN_[A"N0```$Q,WP``3EU.=6%\0_D```-01?D`````M<EF#C(\`#)K"'0`Z
  291. XM(L)1R?_\(\\```!\+'@`!"/.````/$CG@(`(+@`$`2EG$$OZ``A.KO_B8`9"8
  292. XMI_-?3G-#^@`D3J[^:"/`````>&8,+CP``X`'3J[_E&`&3KD````04$].=61O_
  293. XM<RYL:6)R87)Y`$GY``!__DYU3E7_ZDCG(#`D;0`(0>T`$"9(.WQ$"/_V*TK_4
  294. XMZBM*__(K2O_N!JT``'___^XO"R\M``Q(;?_J3KD```NL)`!",B@`(`)/[P`,Z
  295. XM3-\,!$Y=3G5,[P,```0@"$H89OQ32!#99OQ.=4CG<``T`<3`)@%(0\;`2$-"=
  296. XM0]2#2$#`P4A`0D#0@DS?``Y.=4CG(#`F;P`0+PYP_RQY````/$ZN_K8L7R0`+
  297. XM#(#_____9@AP`$S?#`1.=2\.(CP``0`!<"(L>0```#Q.KO\Z+%\D0$J`9A0O+
  298. XM#B`"+'D````\3J[^L"Q?<`!@RB5+``H5;P`7``D5?``$``A"*@`.%4(`#R\.X
  299. XMD\DL>0```#Q.KO[:+%\E0``0(`MG$B\.(DHL>0```#Q.KOZ>+%]@#D'J`!0O^
  300. XM"$ZY```0REA/(`I@`/]V2.<`("1O``A*J@`*9Q`O#B)*+'D````\3J[^F"Q?5
  301. XM%7P`_P`()7S_____`!0O#G``$"H`#RQY````/$ZN_K`L7R\.<"(B2BQY````U
  302. XM/$ZN_RXL7TS?!`!.=4Y5_?1(YS\R)FT`""QM`!!^`"1M``P6$F8*(`=,WTS\G
  303. XM3EU.=5**#`,`)6=$)`<@4['K``1D#"!34I,0@W``$`-@$'``$`,O`"\+3KD`H
  304. XM`!$(4$\,@/____]G``2*4H(6$F8$(`)@ME**#`,`)6;`+@)X`"M\````(/_\S
  305. XM%AIP`!`#8&H(Q```8/((Q``!8.P(Q``"8.8(Q``#8.!-[@`$)"[__$J";`8(I
  306. XMQ```1((6&F!8*WP````P__QT`&`8(`+G@'(`$@/0@=""T((D``2"````,!8:_
  307. XM<``0`T'Y````C1`P``!(@`@```)FTF`<!$``(&><5T!GGE]`9Z!30&>*54!GY
  308. XM@%=`9ZI@L"M"__@D/```?<8,`P`N9F`6&@P#`"IF%DWN``0D+O_\2H)L!B0\1
  309. XM``!]QA8:8#)T`&`8(`+G@'(`$@/0@=""T((D``2"````,!8:<``0`T'Y````]
  310. XMC1`P``!(@`@```)FT@R"``!]QF<(*WP````@__PJ`@P#`&AF!@C$``=@%@P#`
  311. XM`&QF!@C$``9@"@P#`$QF!@C$``@6&BM*``QP`!`#8``!I&```S@(!``'9PQ-6
  312. XM[@`$(&[__#"'8!P(!``&9PQ-[@`$(&[__""'8`I-[@`$(&[__""'=`!@``&X(
  313. XM3>X`!"1N__PO"DZY```0N"0`#(4``'W&6$]G!K2%;P(D!6```9)-[@`$%B[_H
  314. XM_T'M_?@D2!"#=`%@``%\=`A@$`!$`$AV>'008`8(Q``$=`H,`P!89@A!^@*P3
  315. XM(`A@!D'Z`KD@""M`_?0(!``&9PI-[@`$+"[__&`8"`0`!&<*3>X`!"PN__Q@,
  316. XM"$WN``0L+O_\"`0`!&<*2H9L!D2&",0`!4'M__@D2`R%``!]QF8">@%*AF8$\
  317. XM2H5G("`&(@).N0``%!@@;?WT%3`(`"`&(@).N0``%"0L`&;@0>W_^)'*)`@(-
  318. XM!``#9VX,`P!O9A1*@F<*#!(`,&<(M(5M!"H"4H5@5`P#`'AG!@P#`%AF2$J"$
  319. XM9T0,$@`P9SZTA6P00>W]^K'*9`@5/``P4H)@[`@$``!F'`RM````,/_\9A(@*
  320. XM`E2`L*W_^&P(*BW_^%6%8,H5`Q4\`#!4@K2%;!!![?WXL<ID"!4\`#!2@F#L_
  321. XM8$P$0``E9P#^O@1``#-G`/[.!$``"V<`_J930&<`_L1;0&<`_KY;0&<`_CI3#
  322. XM0&<`_J130&<`_J)70&<`_EQ50&<`_J170&<`_I9@`/X4"`0`!&<H"`0`!6<&Z
  323. XM%3P`+6`:"`0``6<&%3P`*V`."`0``F<&%3P`(&`"4X)2@MZ""`0``&8``)0,%
  324. XMK0```##__&9$"`0`!&<^,`0"0``F9S8@4['K``1D#B!34I,0FG``$"K__V`0/
  325. XM<``0&B\`+PM.N0``$0A03PR`_____V<``,Y3K?_X4X)@-B!3L>L`!&00(%-2M
  326. XMDQ"M__]P`!`M__]@$G``$"W__R\`+PM.N0``$0A03PR`_____V<``))2AR`ME
  327. XM__A3K?_XL()NOBH"(`)3@DJ`9S`@4['K``1D#B!34I,0FG``$"K__V`0<``0O
  328. XM&B\`+PM.N0``$0A03PR`_____V=*8,@(!```9SXD!6`N(%.QZP`$9`X@4U*3H
  329. XM$+P`('``<"!@#DAX`"`O"TZY```1"%!/#(#_____9Q)2AR`M__A3K?_XL()NH
  330. XMQF``^S!P_V``^S0P,3(S-#4V-S@Y04)#1$5&`#`Q,C,T-38W.#EA8F-D968`3
  331. XM(&\`!"`(2AAF_%-(D<`@"$YU(&\`!""(6)!"J``$(4@`"$YU2.<`($'Y```!E
  332. XMCB1(+PI.N0``$I)83]7\````%D'Y```#1K7(9>9,WP0`3G5(YSP@)&\`&"@OV
  333. XM`!P@"F<``70T*@`,9P`!;`@"``EF``%D"`(``V8``5Q!Z@`,`E#O_4JJ``AFE
  334. XM'@R$_____V8(<`!,WP0\3G4O"DZY```4?C0J``Q83P@"``YF-B!2L>H`"&,@E
  335. XM2'@``2`2D*H`!"\`$"H`#DB`2,`O`$ZY```62D_O``PDJ@`((&H`$-'2)4@`8
  336. XM!`R$_____V8$=@!@`A8$(!*0J@`(*@`P`@)``*!G2`R$_____V<<(%)2DA"#%
  337. XM0>H`#`C0``8T$$'Z_PHCR````(!2A0R$_____V<,#`,`"F<&NJH`$&4$>/]@8
  338. XM#"52``1P`!`#8`#_3`@"``YG*DJ%9QXO!2\J``@0*@`.2(!(P"\`3KD``!<F2
  339. XML(5/[P`,9E!!Z@`,")``!@R$_____V82)*H`""5J``@`!'``$`-@`/\"0?K^<
  340. XMD"/(````@$'J``P(T``&)*H`""!J`!#1TB5(``0@4E*2$(-P`!`#8`#^U$'J=
  341. XM``P(Z``"``$E:@`(``0DJ@`(</]@`/ZZ3E7_]DCG."`D;0`(=``@"F<&2FH`N
  342. XM#&8*</],WP0<3EU.=0@J``$`#&8,+PI.N0``$W"$@%A/$"H`#DB`2,`O`$ZY1
  343. XM```:4H2`""H````-6$]G#"\J``A.N0``%/I83TIJ`!1G6$AZ`'1(;?_W3KD`5
  344. XM`!70."H`%'8`4$]P`#`$<@I.N0``$_X&@````#!R!Y*#0>W_]Q&`&`!(1$)$+
  345. XM2$2(_``*4H,,@P````5MSD(M__](;?_W3KD``!;J6$]"DD*J``1"J@`(0FH`H
  346. XM#$J"9P9P_V``_TAP`&``_T)435``2.<`("1O``@@"F9*0?D```&.)$A*:@`,6
  347. XM9R@P*@`,`D`""&8>2'C__R\*3KD``!$(#(#_____4$]F"'#_3-\$`$YUU?P`C
  348. XM```60?D```-&M<AEPG``8.9(>/__+PI.N0``$0A03V#62.=(`$*$2H!J!$2`8
  349. XM4D1*@6H&1($*1``!83Y*1&<"1(!,WP`22H!.=4CG2`!"A$J`:@1$@%)$2H%J-
  350. XM`D2!81H@`6#8+P%A$B`!(A]*@$YU+P%A!B(?2H!.=4CG,`!(04I!9B!(038!+
  351. XM-`!"0$A`@,,B`$A`,@*"PS`!0D%(04S?``Q.=4A!)@$B`$)!2$%(0$)`=`_06
  352. XM@-.!MH%B!)*#4D!1RO_R3-\`#$YU2.<@("1O``QT01`J``Y(@$C`+P!.N0``O
  353. XM%=Y*@%A/9P1T(6`*0?D```&ZM<AG&B5\```$```02'@$`$ZY```5?B5```A89
  354. XM3V84)7P````!`!!!Z@`/)4@`"#0\`(!!Z@`,<``P$#("2,&`@3"`)6H`"``$*
  355. XM)*H`"$S?!`1.=4CG`#(L;P`0E\LD>0```(1@#$'J``B]R&<.)DHD4B`*9O!,F
  356. XMWTP`3G4@"V<$)I)@!B/2````A"\.("H`!%"`(DHL>0```#Q.KO\N+%]@U$CG:
  357. XM`#`D>0```(1@&B92+PX@*@`$4(`B2BQY````/$ZN_RXL7R1+(`IFXD*Y````[
  358. XMA$S?#`!.=4CG("`D+P`,2H)F"'``3-\$!$YU+PYR`"`"4(`L>0```#Q.KO\ZC
  359. XM+%\D0$J`9@1P`&#<0?K_EB/(````B"2Y````A"5"``0CR@```(0@"E"`8+Q,Q
  360. XM[P,```0@"!#99OQ.=4CG("`D+P`,(`(B`..(T('CB"1`U?D```",2H)M#C!Y3
  361. XM```#1K'";P1*DF82(_P````#````D'#_3-\$!$YU+PX@`B(`XXC0@>.(('D`;
  362. XM``",(C`(`"QY````>$ZN_R@L7TJ`9P1P`6`"<`!@S$CG,"`D+P`03KD``!?F[
  363. XM(`(B`..(T('CB"1`U?D```",2H)M#C!Y```#1K'";P1*DF82(_P````#````^
  364. XMD'#_3-\$#$YU2.<P`B`O`"13@"8`)"\`("(2+'D```!X3J[_ODS?0`PF``R`P
  365. XM_____V88+PXL>0```'A.KO]\+%\CP````)!P_V"X2.<P`G8`=``B$BQY````T
  366. XM>$ZN_[Y,WT`,8)Y(YP`@)&\`""\.(@HL>0```'A.KO^X+%]*@&8<+PXL>0``"
  367. XM`'A.KO]\+%\CP````)!P_TS?!`!.=7``8/9(YS`P)"\`%"9O`!A.N0``%^8@;
  368. XM`B(`XXC0@>.()$#5^0```(Q*@FT.,'D```-&L<)O!$J29A(C_`````,```"0N
  369. XM</],WPP,3G4P*@`$`D```V8.(_P````&````D'#_8.((*@`#``1G&$CG,`)V!
  370. XM`70`(A(L>0```'A.KO^^3-]`#$CG,`(F+P`H)`LB$BQY````>$ZN_]!,WT`,6
  371. XM)@`,@/____]F&"\.+'D```!X3J[_?"Q?(\````"0</]@AB`#8()(YR``+PXB#
  372. XM/```$`!P`"QY````/$ZN_LXL7R0`"```#&<62KD```"49@@@`DS?``1.=4ZY%
  373. XM```8(G``8/!(YS`"=@1!^@`T)`@O`R\"+'D```!X3J[_Q"(`)!\F'RQY````^
  374. XM>$ZN_]!,WT`,2'@``4ZY```88EA/3G5>0PH`2KD```"89QH@>0```)@@:``$J
  375. XM3I`@>0```)@CT````)A@WDJY````@&<(('D```"`3I`O+P`$3KD``!BB6$].9
  376. XM=4CG,``F+P`,2KD```",9SYT`&`,+P).N0``&E)83U*",'D```-&L<)NZB\.B
  377. XM,#D```-&2,`B`..(T('CB")Y````C"QY````/$ZN_RXL7TJY````B&<(('D`2
  378. XM``"(3I!*N0```TQG%"\.(CD```-,+'D```!X3J[_IBQ?2KD```"<9PP@>0``.
  379. XM`)P@N0```*!*N0```*1G%"\.(GD```"D+'D````\3J[^8BQ?2KD```"H9Q0O0
  380. XM#B)Y````J"QY````/$ZN_F(L7TJY````K&<4+PXB>0```*PL>0```#Q.KOYB$
  381. XM+%]*N0```+!G%"\.(GD```"P+'D````\3J[^8BQ?2.<`!BQX``0(+@`$`2EGQ
  382. XM$$OZ``A.KO_B8`9"I_-?3G,J7TJY````M&9"2KD```"X9S@O#B`Y````O")Y+
  383. XM````N"QY````/$ZN_RXL7R\.(#D```#`Y8!8@")Y````Q"QY````/$ZN_RXLU
  384. XM7V`B+PXL>0```#Q.KO]\+%\O#B)Y````M"QY````/$ZN_H8L7R\.(GD```!X)
  385. XM+'D````\3J[^8BQ?(`,N>0```'Q.=4S?``Q.=4CG("`D+P`,(`(B`..(T('C\
  386. XMB"1`U?D```",2H)M#C!Y```#1K'";P1*DF82(_P````#````D'#_3-\$!$YU0
  387. XM,"H`!`)`@`!F$"\.(A(L>0```'A.KO_<+%]"DG``8-H```/L````20``````\
  388. XM``!@````@````+H```$&```!8@```6@```&&```!X````>H```*8```#&@``W
  389. XM`RX```,V```#6@```VX```-X```#U````^````0R```$1@``!)8```2@```$O
  390. XMM```!1(```5J```%>@``!8X```68```%T@``!BH```8Z```&3@``!E@```9L4
  391. XM```&A```!I(```:@```&J```!K(```;&```'&@``"6(```H````*5```"T@`!
  392. XM``OX```-F@``#DP```Y>```/M```#_```!`X```0<```$.P``!%4```1A```P
  393. XM$AP``!+````2U```$NH``!,````3%```$T@``!.<```3S@``%)0``!2Z```63
  394. XM5```%S0``!@:```85@``&)H``!BZ````*P````$````L```!<````9P```(\G
  395. XM```"2@```E````)@```":@```GX```*$```&T@``!MH```;N```'@@``!XP`Z
  396. XM``><```'P@``!]H```D<```))@``"5(```E<```):@``"7````EZ```)B@``C
  397. XM"9H```H6```,A@``#00``!#B```0^@``$WX``!.Z```4I```%?X``!9P```7H
  398. XM4```&,0``!C0```9`@``&0P``!IR````K`````(````<````9@```'````"&&
  399. XM````D````*````"J````P````,H```#4````V@```.H```#T```!#````18`4
  400. XM``$@```!)@```3````$V```!1@```5````%\```!C````:````&H```!K@``+
  401. XM`;0```&Z```!Q````<H```'2```!\@```?P```(&```"%````B8```(T```"!
  402. XM0@```E8```**```"I````JX```*X```"R````MP```+T```#C@```[(```/:W
  403. XM```$!```!!X```2````$K@``!F8```;````&Y```!P8```<@```')@``!S``4
  404. XM``<V```'0```!T8```=0```'8```!VH```>2```'H@``!Z@```>T```'X```3
  405. XM!_````?Z```(````"`@```DL```)-@``"4````E(```)@```":````FX```):
  406. XMP@``">P```JR```*V@``"O````L<```+-```"V@```N*```+G```$=8``!)0O
  407. XM```5!@``%2P``!4\```53@``%6(``!5T```5G```%;8``!6\```5Q@``%?0`!
  408. XM`!80```6*@``%C0``!9F```6@@``%J(``!:\```6R```%MP``!;X```7"@``-
  409. XM%Q8``!=&```78@``%WX``!>:```7M```%\X``!?:```7]@``&`H``!@T```8]
  410. XM1```&&0``!AL```8>```&'X``!B&```8C@``&*P``!C@```8Y@``&/(``!CZ$
  411. XM```9$@``&1X``!DF```9+```&3(``!D\```90@``&4X``!E8```97@``&6H`S
  412. XM`!ET```9>@``&88``!F0```9E@``&<0``!G,```9U@``&=P``!GB```9\```!
  413. XM&?H``!H````:$```&AX``!HD```:,@``&C@``!I&```::```&H0``!J@````E
  414. XM`````_(```/J````U`````0`"`````$!````````````````````````D@`!7
  415. XM`;``"`$`````````"`````````````````````````````````````````$`#
  416. XM````````````"!0```@8```('```""````@D```(*```""P```@P```(-```,
  417. XM"#@```@\```(0```"$0```A(`"`@("`@("`@(#`P,#`P("`@("`@("`@("`@X
  418. XM("`@("`@D$!`0$!`0$!`0$!`0$!`0`P,#`P,#`P,#`Q`0$!`0$!`"0D)"0D)^
  419. XM`0$!`0$!`0$!`0$!`0$!`0$!`0%`0$!`0$`*"@H*"@H"`@("`@("`@("`@("J
  420. XM`@("`@("`D!`0$`@````````````````````````````````````````````N
  421. XM`````````````````````````````````````````````````````````````
  422. XM`````````````````````````````````````````````````````````````
  423. XM`````````````````````````@````````$```````````````````0``0``(
  424. XM```!```````````````````$``(``````0``````````````````````````(
  425. XM`````````````````````````````````````````````````````````````
  426. XM`````````````````````````````````````````````````````````````
  427. XM`````````````````````````````````````````````````````````````
  428. XM`````````````````````````````````````````````````````````````
  429. XM`````````````````````````````````````````````````````````````
  430. XM`````````````````````````````````````````````````````````````
  431. XM`````````````````````````````````````````````````````````````
  432. XM````````````````````````````````````````````````````````%```4
  433. XM```````````#[`````$````"````%`````\``````````````%0```!8````!
  434. XM7````&````!D````:````&P```!P````=````'@```!\````@````(0```"(8
  435. X4`````````_(```/K````,P```_)P[
  436. X``
  437. Xend
  438. Xsize 9020
  439. END_OF_FILE
  440. if test 12674 -ne `wc -c <'l/MSClock-Han.uu'`; then
  441.     echo shar: \"'l/MSClock-Han.uu'\" unpacked with wrong size!
  442. fi
  443. # end of 'l/MSClock-Han.uu'
  444. fi
  445. if test ! -d 'source' ; then
  446.     echo shar: Creating directory \"'source'\"
  447.     mkdir 'source'
  448. fi
  449. if test -f 'source/MSClock-Handler.c' -a "${1}" != "-c" ; then 
  450.   echo shar: Will not clobber existing file \"'source/MSClock-Handler.c'\"
  451. else
  452. echo shar: Extracting \"'source/MSClock-Handler.c'\" \(7683 characters\)
  453. sed "s/^X//" >'source/MSClock-Handler.c' <<'END_OF_FILE'
  454. X/*
  455. X *    MSClock-Handler.c        (c) 12.02.91 by Martin Steppler
  456. X */
  457. X
  458. X// includes
  459. X
  460. X#include <stdio.h>
  461. X#include <libraries/dos.h>
  462. X#include <libraries/dosextens.h>
  463. X#include <devices/inputevent.h>
  464. X#include <devices/printer.h>
  465. X#include <devices/timer.h>
  466. X#include <devices/input.h>
  467. X#include <graphics/gfx.h>
  468. X#include <graphics/gfxbase.h>
  469. X#include <graphics/gfxmacros.h>
  470. X#include <intuition/intuition.h>
  471. X#include <intuition/intuitionbase.h>
  472. X#include <exec/exec.h>
  473. X#include <hardware/cia.h>
  474. X#include <functions.h>
  475. X
  476. X// prototypes
  477. X
  478. Xvoid ciao(void);
  479. X
  480. X// reference to the absolute address of ciab
  481. X
  482. Xextern struct CIA ciab;
  483. X
  484. X// defines
  485. X
  486. X#define SIG_CHANGE   SIGBREAKF_CTRL_C
  487. X#define SIG_CLOSE    SIGBREAKF_CTRL_D
  488. X#define CHILD_READY  SIGBREAKF_CTRL_D
  489. X#define EOS 0
  490. X#define PORTNAME "Martin's Clock-Port"
  491. X
  492. Xstruct TheClock
  493. X{
  494. X   struct MsgPort    Port;          // Global messageport.
  495. X   BPTR              Segment;       // Pointer to handler segment.
  496. X   LONG              SegSize;       // Size of TheClock structure.
  497. X   struct Task      *Father;        // Calling process.
  498. X   struct Task      *Child;         // Waiting process
  499. X   int               LeftEdge;      // LeftEdge of our window
  500. X   int               Width;         // Width of our window
  501. X   int               Online;        // Online flag
  502. X   int               Flags;         // display-flags
  503. X   int               FlagsBackup;   // backup of the display-flags
  504. X   int               Status;        // status-flag
  505. X};
  506. X
  507. X// globals
  508. X
  509. Xchar                  DateBuf[60];
  510. Xstruct TextAttr       TopazText    = { (UBYTE *)"topaz.font",8,0,0};
  511. Xstruct IntuiText      TextPrint    = { 0,1,JAM2,0,0,NULL,(UBYTE *)DateBuf,NULL};
  512. Xstruct NewWindow      ClockWindow  = { 146,1,432,8,1,0,EOS, BORDERLESS, NULL,NULL,EOS,NULL,NULL,0,0,0,0,WBENCHSCREEN};
  513. Xstruct Window        *Window=NULL;
  514. Xstruct timerequest    TimeReq;
  515. Xstruct MsgPort       *TimerPort=NULL;
  516. Xstruct IntuitionBase *IntuitionBase;
  517. Xstruct GfxBase       *GfxBase;
  518. Xstruct DosLibrary    *DosBase;
  519. Xstruct TheClock      *TheClock;
  520. X
  521. X        /* _main():
  522. X         *
  523. X         *      Modified Aztec C startup-routine, no CLI parsing,
  524. X         *      no Workbench parsing, absolutely nothing.
  525. X         */
  526. X
  527. Xlong
  528. X_main()
  529. X{
  530. X   register struct Process *ThatsMe = (struct Process *)FindTask(NULL);
  531. X   register ULONG SignalSet;
  532. X   char TempBuf[60];
  533. X   char *Days[14]={ "Son","Mon","Die","Mit","Don","Fre","Sam",
  534. X                    "Sun","Mon","Tue","Wed","Thu","Fri","Sat" };
  535. X   struct DateStamp Date;
  536. X   long n,eng,Month,Day,Year,chip_free,fast_free,hh=0,mm=0,ss=0,lastsec=-1;
  537. X   int i;
  538. X
  539. X      // If somebody called us from CLI...
  540. X
  541. X   if(ThatsMe -> pr_CLI) return(10);
  542. X
  543. X      // Is the TheClock structure anywhere?
  544. X
  545. X   if(!(TheClock = (struct TheClock *)FindPort(PORTNAME))) return(10);
  546. X
  547. X      // open libraries
  548. X
  549. X   if(!(IntuitionBase = OpenLibrary("intuition.library",0))) {
  550. X      Signal(TheClock -> Father, CHILD_READY);
  551. X      return(20);
  552. X   }
  553. X   if(!(GfxBase       = OpenLibrary("graphics.library",0))) {
  554. X      CloseLibrary(IntuitionBase);
  555. X      Signal(TheClock -> Father, CHILD_READY);
  556. X      return(20);
  557. X   }
  558. X   if(!(DosBase       = OpenLibrary("dos.library",0))) {
  559. X      CloseLibrary(GfxBase);
  560. X      CloseLibrary(IntuitionBase);
  561. X      Signal(TheClock -> Father, CHILD_READY);
  562. X      return(20);
  563. X   }
  564. X
  565. X   if(TimerPort=(struct MsgPort *) CreatePort("Timer Port",0)) {
  566. X      if(OpenDevice(TIMERNAME,UNIT_VBLANK,(struct IORequest *)&TimeReq,0)==(long)NULL) {
  567. X         TimeReq.tr_node.io_Message.mn_ReplyPort=TimerPort;
  568. X         TimeReq.tr_node.io_Command=TR_ADDREQUEST;
  569. X         TimeReq.tr_node.io_Flags=0;
  570. X         TimeReq.tr_node.io_Error=0;
  571. X         TimeReq.tr_time.tv_secs=0;
  572. X         TimeReq.tr_time.tv_micro=1000000;  // delay
  573. X         SendIO((struct IORequest *) &TimeReq.tr_node);
  574. X      }
  575. X      else ciao();
  576. X   }
  577. X   else ciao();
  578. X
  579. X   TheClock -> Child = (struct Task *)FindTask(NULL);
  580. X   TheClock -> Status = 1;
  581. X
  582. X           // Go into infinite loop waiting for signals.
  583. X
  584. X   FOREVER
  585. X   {
  586. X      if(TheClock -> Status == 1) {      // switch clock on
  587. X         TheClock -> Status = 2;
  588. X         ClockWindow.LeftEdge = TheClock -> LeftEdge;
  589. X         ClockWindow.Width    = TheClock -> Width;
  590. X         if(Window=(struct Window *) OpenWindow(&ClockWindow)) {
  591. X            if(Window->IFont->tf_YSize>8) TextPrint.ITextFont=&TopazText;
  592. X            TheClock->Status = 0;
  593. X         }
  594. X         else ciao();
  595. X
  596. X           // Tell father to finish.
  597. X
  598. X         Signal(TheClock -> Father, CHILD_READY);
  599. X      }
  600. X      if(!TheClock->Status) {     // show mem, date, online-time and/or time
  601. X         chip_free = AvailMem(MEMF_CHIP) >> 10;
  602. X         fast_free = AvailMem(MEMF_FAST) >> 10;
  603. X         DateStamp((struct DateStamp *)&Date) ;
  604. X         n = Date.ds_Days - 2251;
  605. X         Year = (4 * n + 3) / 1461;
  606. X         n -= 1461 * Year / 4;
  607. X         Year += 1984;
  608. X         Month = (5 * n + 2) / 153;
  609. X         Day = n - (153 * Month + 2) / 5 + 1;
  610. X         Month += 3; n=TheClock->Flags;
  611. X         if(Month>12) { Year++; Month -= 12; }
  612. X         DateBuf[0]=EOS;
  613. X         if(n & 4) sprintf(DateBuf, "A:%-4d F:%-4d C:%-3d", chip_free+fast_free, fast_free, chip_free);
  614. X         if(n & 32) {
  615. X
  616. X            // Check port a of cia b. Is there a carrier?
  617. X
  618. X            if(!(ciab . ciapra & CIAF_COMCD)) // Online ?
  619. X            {
  620. X               if(!TheClock -> Online) {    // Time reset
  621. X                  hh=mm=ss=0; TheClock -> Online = TRUE;
  622. X               }
  623. X
  624. X                       // Increment time counter.
  625. X
  626. X               if(lastsec != Date.ds_Tick/TICKS_PER_SECOND) {
  627. X                  lastsec = Date.ds_Tick/TICKS_PER_SECOND;
  628. X                  if(++ss == 60) {
  629. X                     ss=0; if(++mm == 60) { mm=0; ++hh; }
  630. X                  }
  631. X               }
  632. X            }
  633. X            else TheClock -> Online = FALSE;
  634. X            sprintf(TempBuf, "  %02ld:%02ld:%02ld", hh, mm, ss);
  635. X            strcat(DateBuf,TempBuf);
  636. X         }
  637. X         if(n & 2) {
  638. X            eng = (n & 8) ? 7:0;
  639. X            if(n & 16) sprintf(TempBuf, "  %s %02ld-%02ld-%02ld", Days[(Day + Year + (Year - (Month < 3)) / 4 + 3 * Month - 2 * (Month > 2) - (Month - 1 - (Month > 8)) / 2 + 2) % 7 +eng], Month, Day, Year-1900);
  640. X            else       sprintf(TempBuf, "  %s %02ld.%02ld.%02ld", Days[(Day + Year + (Year - (Month < 3)) / 4 + 3 * Month - 2 * (Month > 2) - (Month - 1 - (Month > 8)) / 2 + 2) % 7 +eng], Day, Month, Year-1900);
  641. X            strcat(DateBuf,TempBuf);
  642. X         }
  643. X         if(n & 1) {
  644. X            sprintf(TempBuf, "  %02ld:%02ld:%02ld", Date.ds_Minute/60, Date.ds_Minute%60, Date.ds_Tick/TICKS_PER_SECOND);
  645. X            strcat(DateBuf, TempBuf);
  646. X         }
  647. X         PrintIText(Window->RPort,&TextPrint, 0,0);
  648. X      }
  649. X      SignalSet = Wait(SIG_CLOSE | SIG_CHANGE | (1 << TimerPort->mp_SigBit));
  650. X      if(SignalSet & SIG_CLOSE) {
  651. X         ciao();
  652. X         CloseLibrary(IntuitionBase);
  653. X         CloseLibrary(GfxBase);
  654. X         CloseLibrary(DosBase);
  655. X         Forbid();
  656. X         Signal(TheClock -> Father, CHILD_READY);
  657. X         return(0);
  658. X      }
  659. X      else if(SignalSet & SIG_CHANGE) {
  660. X         if(Window) { CloseWindow(Window); Window = NULL; }
  661. X         TheClock->Flags = TheClock->FlagsBackup;
  662. X         TheClock->Status = 1;
  663. X      }
  664. X      if(SignalSet & (1 << TimerPort->mp_SigBit)) {
  665. X         if(GetMsg(TimerPort)) {
  666. X            TimeReq.tr_time.tv_secs=0;
  667. X            TimeReq.tr_time.tv_micro=1000000;
  668. X            SendIO((struct IORequest *) &TimeReq.tr_node);
  669. X         }
  670. X      }
  671. X   }
  672. X}
  673. Xvoid
  674. Xciao(void)
  675. X{
  676. X   if(TimerPort) GetMsg(TimerPort);
  677. X   if(TimeReq.tr_node.io_Message.mn_ReplyPort) CloseDevice((struct IORequest *)&TimeReq);
  678. X   if(TimerPort) { DeletePort(TimerPort); TimerPort = NULL; }
  679. X   if(Window) { CloseWindow(Window); Window = NULL; }
  680. X}
  681. END_OF_FILE
  682. if test 7683 -ne `wc -c <'source/MSClock-Handler.c'`; then
  683.     echo shar: \"'source/MSClock-Handler.c'\" unpacked with wrong size!
  684. fi
  685. # end of 'source/MSClock-Handler.c'
  686. fi
  687. if test -f 'source/MSClock.c' -a "${1}" != "-c" ; then 
  688.   echo shar: Will not clobber existing file \"'source/MSClock.c'\"
  689. else
  690. echo shar: Extracting \"'source/MSClock.c'\" \(8715 characters\)
  691. sed "s/^X//" >'source/MSClock.c' <<'END_OF_FILE'
  692. X/*
  693. X *    MSClock.c        (c) by Martin Steppler 12.02.91
  694. X *
  695. X *    Yet another clock utility for use with L:MSClock-Handler
  696. X */
  697. X
  698. X// includes
  699. X
  700. X#include <stdio.h>
  701. X#include <libraries/dos.h>
  702. X#include <devices/timer.h>
  703. X#include <devices/input.h>
  704. X#include <intuition/intuition.h>
  705. X#include <intuition/intuitionbase.h>
  706. X#include <exec/exec.h>
  707. X#include <functions.h>
  708. X
  709. X//defines
  710. X
  711. X#define SIG_CHANGE  SIGBREAKF_CTRL_C
  712. X#define SIG_CLOSE   SIGBREAKF_CTRL_D
  713. X#define CHILD_READY SIGBREAKF_CTRL_D
  714. X#define EOS 0
  715. X#define PORTNAME "Martin's Clock-Port"
  716. X#define WriteStdOut(str) Write(StdOut, str, (LONG)strlen(str))
  717. X
  718. X#define TIME_WIDTH         80
  719. X#define DATE_WIDTH         112
  720. X#define ONLINE_WIDTH       80
  721. X#define MEM_WIDTH          152
  722. X#define FRONTBACKGAD_WIDTH 62
  723. X
  724. X// prototypes
  725. X
  726. Xlong Chk_Abort() { return(0); }
  727. Xvoid main(int, char **);
  728. Xint GetWidth(int DefFlag);
  729. Xint GetOverscan(void);
  730. X
  731. X// globals
  732. X
  733. Xstruct TheClock
  734. X{
  735. X   struct MsgPort    Port;          // Global messageport.
  736. X   BPTR              Segment;       // Pointer to handler segment.
  737. X   LONG              SegSize;       // Size of TheClock structure.
  738. X   struct Task      *Father;        // Calling process.
  739. X   struct Task      *Child;         // Waiting process
  740. X   int               LeftEdge;      // LeftEdge of our window
  741. X   int               Width;         // Width of our window
  742. X   int               Online;        // online-flag
  743. X   int               Flags;         // display-flags
  744. X   int               FlagsBackup;   // backup of the display-flags
  745. X   int               Status;        // status-flag
  746. X};
  747. X
  748. Xstruct IntuitionBase *IntuitionBase;
  749. Xstruct DosLibrary    *DosBase;
  750. Xstruct TheClock      *TheClock;
  751. X
  752. X// here we go ...
  753. X
  754. Xvoid
  755. Xmain(argc, argv)
  756. Xint argc;
  757. Xchar *argv[];
  758. X{
  759. X   register struct Process *ThatsMe = (struct Process *)FindTask(NULL);
  760. X   int DefFlag = 39; // display time, date, online time and mem
  761. X   int i, quit=0, help=0;
  762. X   BPTR StdOut = (BPTR)Open("*", MODE_OLDFILE);
  763. X
  764. X
  765. X      // open libraries
  766. X
  767. X   if(IntuitionBase = OpenLibrary("intuition.library",0)) {
  768. X      if(DosBase = OpenLibrary("dos.library",0)) {
  769. X
  770. X         // Is the TheClock structure anywhere?
  771. X
  772. X         if(TheClock = (struct TheClock *)FindPort(PORTNAME)) DefFlag = TheClock->Flags;
  773. X         for (i = 1; i < argc; i++) {
  774. X            if(!strcmp(argv[i], "quit") || !strcmp(argv[i], "-q")) {
  775. X               quit = 1;
  776. X               break;
  777. X            }
  778. X            else if(!strcmp(argv[i], "-t")) { DefFlag = (DefFlag &  1) ? (DefFlag & 62):(DefFlag |  1); }
  779. X            else if(!strcmp(argv[i], "-d")) { DefFlag = (DefFlag &  2) ? (DefFlag & 61):(DefFlag |  2); }
  780. X            else if(!strcmp(argv[i], "-m")) { DefFlag = (DefFlag &  4) ? (DefFlag & 59):(DefFlag |  4); }
  781. X            else if(!strcmp(argv[i], "-e")) { DefFlag = (DefFlag &  8) ? (DefFlag & 55):(DefFlag |  8); }
  782. X            else if(!strcmp(argv[i], "-r")) { DefFlag = (DefFlag & 16) ? (DefFlag & 47):(DefFlag | 16); }
  783. X            else if(!strcmp(argv[i], "-o")) { DefFlag = (DefFlag & 32) ? (DefFlag & 31):(DefFlag | 32); }
  784. X            else { help = 1; break; }
  785. X         }
  786. X         if(help && StdOut) {
  787. X             WriteStdOut("\33[1mMSClock V1.3\33[0m (c) 12.02.91 by Martin Steppler\n");
  788. X             WriteStdOut("USAGE:  MSClock [-t] [-d] [-m] [-e] [-r] [-q] [quit]\n");
  789. X             WriteStdOut("        -t    time   off/on                default: on\n");
  790. X             WriteStdOut("        -d    date   off/on                default: on\n");
  791. X             WriteStdOut("        -m    memory off/on                default: on\n");
  792. X             WriteStdOut("        -o    online time off/on           default: on\n");
  793. X             WriteStdOut("        -e    English weekdays on/off      default: German on\n");
  794. X             WriteStdOut("        -r    reverse date display on/off  default: off\n");
  795. X             WriteStdOut("        -q    quit MSClock\n");
  796. X         }
  797. X         else if(!TheClock && !quit) {
  798. X
  799. X                     // No, then Create Process
  800. X
  801. X            if(TheClock = (struct TheClock *)AllocMem(sizeof(struct TheClock),MEMF_PUBLIC | MEMF_CLEAR)) {
  802. X
  803. X                     // Dummy MessagePort.
  804. X
  805. X               TheClock -> Port . mp_Flags         = PA_IGNORE;
  806. X               TheClock -> Port . mp_Node . ln_Pri = 0;
  807. X               TheClock -> Port . mp_Node . ln_Type= NT_MSGPORT;
  808. X               TheClock -> Port . mp_Node . ln_Name= AllocMem(sizeof(PORTNAME),MEMF_PUBLIC);
  809. X               TheClock -> Child                   = NULL;
  810. X               TheClock -> Father                  = (struct Task *)ThatsMe;
  811. X               TheClock -> SegSize                 = sizeof(struct TheClock);
  812. X               TheClock -> Width                   = GetWidth(DefFlag);
  813. X               TheClock -> LeftEdge                = GetOverscan() - TheClock->Width;
  814. X               TheClock -> Online                  = FALSE;
  815. X               TheClock -> Flags                   = DefFlag;
  816. X               TheClock -> FlagsBackup             = DefFlag;
  817. X
  818. X                     // Init port.
  819. X
  820. X               strcpy(TheClock -> Port . mp_Node . ln_Name,PORTNAME);
  821. X               NewList(&TheClock -> Port . mp_MsgList);
  822. X
  823. X                     // Load the handler code.
  824. X
  825. X               if(!(TheClock -> Segment = LoadSeg("MSClock-Handler")))
  826. X                  TheClock -> Segment = LoadSeg("L:MSClock-Handler");
  827. X               if(!TheClock -> Segment)
  828. X               {
  829. X                  FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
  830. X                  FreeMem(TheClock,TheClock -> SegSize);
  831. X                  if(StdOut)  WriteStdOut("Installation of \33[1mMartin Steppler's Clock\33[0m failed. Don't panic!\n");
  832. X               }
  833. X               else
  834. X               {
  835. X                     // Install the port and start the handler.
  836. X
  837. X                  AddPort(&TheClock -> Port);
  838. X                  CreateProc("Martin's Clock", 5,TheClock -> Segment,4096);
  839. X
  840. X                     // Wait for child task to ring back...
  841. X
  842. X                  Wait(CHILD_READY);
  843. X                  if(!TheClock -> Child)  // failed
  844. X                  {
  845. X                     RemPort(&TheClock -> Port);
  846. X                     FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
  847. X                     if(TheClock -> Segment) UnLoadSeg(TheClock -> Segment);
  848. X                     FreeMem(TheClock,TheClock -> SegSize);
  849. X                     if(StdOut)  WriteStdOut("Installation of \33[1mMartin Steppler's Clock\33[0m failed. Don't panic!\n");
  850. X                  }
  851. X                  else             // Yeah, it works
  852. X                     if(StdOut)  WriteStdOut("It is my pleasure to install \33[1mMartin Steppler's Clock\33[0m for you!\n");
  853. X               }
  854. X            }
  855. X         }
  856. X         else if(TheClock && quit) {
  857. X            TheClock -> Father = (struct Task *)ThatsMe;
  858. X            Signal(TheClock -> Child,SIG_CLOSE);
  859. X            Wait(CHILD_READY);
  860. X
  861. X               // Remove port and associated data.
  862. X
  863. X            RemPort(&TheClock -> Port);
  864. X            FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
  865. X            if(TheClock -> Segment) UnLoadSeg(TheClock -> Segment);
  866. X            FreeMem(TheClock,TheClock -> SegSize);
  867. X            if(StdOut) {
  868. X               WriteStdOut("It is my satisfaction to close \33[1mMartin Steppler's Clock\33[0m again\n");
  869. X               WriteStdOut("with the knowledge of a job well done!\n");
  870. X            }
  871. X         }
  872. X         else if(TheClock) {
  873. X
  874. X            // store changes and signal child
  875. X
  876. X            TheClock->FlagsBackup = DefFlag;
  877. X            TheClock->Width = GetWidth(DefFlag);
  878. X            TheClock->LeftEdge = GetOverscan() - TheClock->Width;
  879. X            TheClock -> Father = (struct Task *)ThatsMe;
  880. X            Signal(TheClock -> Child,SIG_CHANGE);
  881. X            Wait(CHILD_READY);
  882. X         }
  883. X      }
  884. X   }
  885. X   if(StdOut)          Close(StdOut);
  886. X   if(IntuitionBase)   CloseLibrary(IntuitionBase);
  887. X   if(DosBase)         CloseLibrary(DosBase);
  888. X}
  889. X
  890. X// calculate width of our window
  891. X
  892. XGetWidth(int DefFlag)
  893. X{
  894. X   int Width = 0;
  895. X
  896. X   if(DefFlag &  1) Width+= TIME_WIDTH;
  897. X   if(DefFlag &  2) Width+= DATE_WIDTH;
  898. X   if(DefFlag &  4) Width+= MEM_WIDTH;
  899. X   if(DefFlag & 32) Width+= ONLINE_WIDTH;
  900. X
  901. X   // default width
  902. X
  903. X   if(!Width) Width = TIME_WIDTH;
  904. X
  905. X   return(Width);
  906. X}
  907. XGetOverscan(void)
  908. X{
  909. X   register struct Screen *WBench;
  910. X   register ULONG IntuiLock;
  911. X
  912. X           // Start with the first one.
  913. X
  914. X   IntuiLock = LockIBase(0L);
  915. X   WBench = IntuitionBase -> FirstScreen;
  916. X   UnlockIBase(IntuiLock);
  917. X
  918. X           // Scan the list...
  919. X   do
  920. X   {
  921. X           // The type we want?
  922. X
  923. X      if((WBench -> Flags & SCREENTYPE) == WBENCHSCREEN)
  924. X         return(WBench -> Width - FRONTBACKGAD_WIDTH);
  925. X   }
  926. X   while(WBench = WBench -> NextScreen);
  927. X
  928. X           // Failed!
  929. X
  930. X   return(640 - FRONTBACKGAD_WIDTH);
  931. X}
  932. END_OF_FILE
  933. if test 8715 -ne `wc -c <'source/MSClock.c'`; then
  934.     echo shar: \"'source/MSClock.c'\" unpacked with wrong size!
  935. fi
  936. # end of 'source/MSClock.c'
  937. fi
  938. if test -f 'source/makefile' -a "${1}" != "-c" ; then 
  939.   echo shar: Will not clobber existing file \"'source/makefile'\"
  940. else
  941. echo shar: Extracting \"'source/makefile'\" \(479 characters\)
  942. sed "s/^X//" >'source/makefile' <<'END_OF_FILE'
  943. X# makefile for MSClock with Aztec C 5.0d and SKShell
  944. X
  945. Xif [ MSClock-Handler.o -ot MSClock-Handler.c -o ! -f MSClock-Handler.o ]
  946. Xthen
  947. X   echo "Compiling and linking $_ANSI_P3 MSClock-Handler.c $_ANSI_P1 "
  948. X   cc -3 +D +L  MSClock-Handler.c
  949. X   ln +cdb +q -o l:MSClock-Handler MSClock-Handler.o -lcl
  950. Xfi
  951. Xif [ MSClock.o -ot MSClock.c -o ! -f MSClock.o ]
  952. Xthen
  953. X   echo "Compiling and linking $_ANSI_P3 MSClock.c $_ANSI_P1 "
  954. X   cc -wu MSClock.c
  955. X   ln +cdb +q -o c:MSClock MSClock.o -lc
  956. Xfi
  957. END_OF_FILE
  958. if test 479 -ne `wc -c <'source/makefile'`; then
  959.     echo shar: \"'source/makefile'\" unpacked with wrong size!
  960. fi
  961. # end of 'source/makefile'
  962. fi
  963. echo shar: End of archive 1 \(of 1\).
  964. cp /dev/null ark1isdone
  965. MISSING=""
  966. for I in 1 ; do
  967.     if test ! -f ark${I}isdone ; then
  968.     MISSING="${MISSING} ${I}"
  969.     fi
  970. done
  971. if test "${MISSING}" = "" ; then
  972.     echo You have the archive.
  973.     rm -f ark[1-9]isdone
  974. else
  975.     echo You still need to unpack the following archives:
  976.     echo "        " ${MISSING}
  977. fi
  978. ##  End of shell archive.
  979. exit 0
  980. -- 
  981. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  982. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  983. Post requests for sources, and general discussion to comp.sys.amiga.misc.
  984.